1. Technical Field
The present invention relates in general, to video servers and in particular to shared disk clusters of video servers within a video on demand (VOD) system. More particularly, the present invention relates to video frame retrieval from shared disk clusters in a VOD system. Still more particularly, the present invention relates to out of order video frame retrieval requests from multiple video servers.
2. Description of the Related Art
A VOD system typically includes ac storage server, a controller, a communications network and customer stations. Multiple videos are stored in digital form on a storage server and transmitted, or played out, to an end userxe2x80x94at the user""s stationxe2x80x94upon request. An end user would select an available movie (stored on the storage server) and the controller would transmit the selected movie over the communications network to the customer""s station.
In order to cost-effectively meet customer demand, video storage servers are usually required to provide multiple current streams of multimedia data (i.e., videos) at the same time. During normal playout, data blocks containing ordered frames of the multimedia stream are retrieved from a storage system and transmitted to the receiving station (that of the end user). The receiving station decodes the incoming multimedia stream and plays it out. The receiving station is usually connected to the VOD service via a network and either cable or satellite. Within the VOD service the movies may be stored on hard disk drives, usually shared disk storage. Many shared disk storage systems are very large and provide data block feeds for multiple servers.
During normal playout, media (video) segments are retrieved (I/O request) by a video server, buffered in memory and then transmitted at a fixed rate to the receiving station. In shared-disk clusters of video servers, disk contention can result in poor video quality when disk requests are prioritized without reference to first video frame deadlines. While a single video server can control the order of issue of I/O requests, requests out of deadline order may be received by disks shared by multiple servers. This increases the probability that video frames will be dropped and the image quality of the video suffers.
Current shared disk subsystems nominally select the order that I/O (input/output) requests are satisfied by examining a queue of requests and ordering them in a scheme that will produce the minimum amount of disk drive read head movement. This is often referred to as an xe2x80x9celevatorxe2x80x9d algorithm where the disk drive head takes the next read closest to the current position of the drive head.
With the advent of real time data delivery, elevator algorithms are found to be counter productive to video timing requirements. For instance, requests that must be satisfied immediately may be ordered by the algorithm in a lower priority slot in lieu of requests whose disk address happens to be closer to the current disk head position.
Real time data delivery software often must compensate for elevator algorithms by either requesting one I/O at a time or turning off the elevator algorithm and making requests in priority order. For a multi-node system where multiple machines are requesting data from a single pool of disks, contention for transmit order may cause large variances in retrieval times from buffers of frames from shared disks, resulting in the transmitted video being perceived by the user as poor quality reception.
Therefore, it would be desirable to provide a method and apparatus that would improve the prioritizing of video data requests and reduce dropped video frames, which are seen by the viewer as poor quality television images.
It is therefore one object of the present invention to provide a method and apparatus for transmitting video data frames with no visible delay between data frames.
It is another object of the present invention to provide a method and apparatus for determining accurate times for prioritizing data frame disk reads associated with multiple video streams originating from a plurality of video servers.
It is yet another object of the present invention to provide a method and apparatus for which provides higher disk read rates with fewer missed frame deadlines, and requiring less memory buffering.
The foregoing objects are achieved as is now described. A first frame deadline is calculated and attached to an I/O request for prioritizing and retrieving video data frames from a shared disk cluster. Disk adapters queue video data frame requests according to the deadline incorporated in the frame requests. Data frames are transmitted to a requesting end user utilizing the attached deadline time to schedule the frames according to a time priority. Alternatively, a xe2x80x9cslackxe2x80x9d time until deadline is computed and utilized to determine the order in which the first frame and subsequent frames of the requested video data may be retrieved from disk to be present in the video server""s memory in order to avoid a visible delay in sending that frame to the end user.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.